# import ast
#
# from 程序核心代码._ast节点.节点定义.具体ast节点 import 获取属性全名称, 变量节点, 属性节点
#
#
# def 数据类节点匹配(_ast节点, 所属节点模型管理器, 上级节点=None):
#     if isinstance(_ast节点, ast.Name):
#         创建的变量节点=None
#         if isinstance(_ast节点.ctx, ast.Load):
#             for 节点模型 in reversed(所属节点模型管理器.节点模型列表):
#                 if isinstance(节点模型._ast节点, ast.Name):
#                     if 节点模型._ast节点.id == _ast节点.id:
#                         if isinstance(节点模型.操作类型, ast.Store):
#                             if 节点模型.是否显示:
#                                 节点模型.同用处ast节点列表.append(_ast节点)
#                                 创建的变量节点 = 节点模型
#                                 break
#         if not 创建的变量节点:
#             创建的变量节点=变量节点(_ast节点, 所属节点模型管理器,上级节点=上级节点)
#
#         return 创建的变量节点
#     if isinstance(_ast节点, ast.Attribute):
#         创建的属性节点=None
#         if isinstance(_ast节点.ctx, ast.Load):
#             for 节点模型 in reversed(所属节点模型管理器.节点模型列表):
#                 if isinstance(节点模型._ast节点, ast.Attribute):
#
#                     if 获取属性全名称(节点模型._ast节点) == 获取属性全名称(_ast节点):
#
#                         if 节点模型.是否显示:
#
#                             节点模型.同用处ast节点列表.append(_ast节点)
#                             创建的属性节点 = 节点模型
#                             break
#         if not 创建的属性节点:
#             创建的属性节点=属性节点(_ast节点, 所属节点模型管理器,上级节点=上级节点)
#         return 创建的属性节点
#     return None
#
#
# # 通用的处理读取操作的辅助函数
# def 处理读取操作(_ast节点, 所属节点模型管理器, 上级节点, 获取键函数, 节点类):
#     创建的节点 = None
#     匹配键 = 获取键函数(_ast节点)
#     if isinstance(_ast节点.ctx, ast.Load):
#         for 节点模型 in reversed(所属节点模型管理器.节点模型列表):
#             if isinstance(节点模型._ast节点, 节点类):
#                 当前键 = 获取键函数(节点模型._ast节点)
#                 if 当前键 == 匹配键:
#                     if isinstance(节点模型.操作类型, ast.Store):
#                         if 节点模型.是否显示:
#                             节点模型.同用处ast节点列表.append(_ast节点)
#                             创建的节点 = 节点模型
#                             break
#                         else:
#                             raise Exception("异常状况：节点为写入但是并不为显示节点",
#                                             ast.dump(_ast节点, annotate_fields=True, indent=4))
#         if not 创建的节点:
#             创建的节点 = 节点类(_ast节点, 所属节点模型管理器, 上级节点=上级节点)
#     elif isinstance(_ast节点.ctx, ast.Store):
#         创建的节点 = 节点类(_ast节点, 所属节点模型管理器, 上级节点=上级节点)
#
#
#     return 创建的节点
